* Сравнение двух каталогов * Программа КОНЦЕПТ, 27.02.2011-16.03.2011, www.gendoc.ru присвоить каталог1 C:\vdv\Concept_del присвоить каталог2 C:\vdv\Concept время таймер функция Соблюдается_хронология время1 время2 память локальный рез дата_1 дата_2 время_1 время_2 успешно дней присвоить рез 0 если [время1] != [время2] строка сопоставить успешно [время1] "[?дата_1]; ;[?время_1]" строка сопоставить успешно [время2] "[?дата_2]; ;[?время_2]" время разностьДат дней [дата_2] [дата_1] если [дней] > 0 присвоить рез 1 иначе если [дней] < 0 присвоить рез -1 иначе память локальный ч м с в1 в2 строка сопоставить успешно [время_1] "[?ч];:;[?м];:;[?с]" вычислить + в1 (вычислить * $результат [ч] 3600 ) (вычислить * $результат [м] 60 ) [с] строка сопоставить успешно [время_2] "[?ч];:;[?м];:;[?с]" вычислить + в2 (вычислить * $результат [ч] 3600 ) (вычислить * $результат [м] 60 ) [с] если [в1] < [в2] присвоить рез 1 иначе если [в1] > [в2] присвоить рез -1 конец конец конец конец конец присвоить $результат [рез] возврат функция Объекты_по_свойству имя_свойства значение_свойства память локальный рез объект успешно присвоить рез {} для (факт понятие $результат [значение_свойства] ) список сопоставить успешно (факт взять $результат [$ОбъектЦикла] ) "p;[?объект];[имя_свойства];[значение_свойства]" если [успешно] множество или рез $ [объект] конец следующий присвоить $результат [рез] возврат функция Печать_информации_о_файле объект память локальный объект1 понятие свойства объект1 [объект] если (память существует $результат 'объект1;новее' ) если [объект1;новее] == НОВЕЕ >[объект1;имя файла исходное] ([объект1;размер], [объект1;дата]) НОВЕЕ
конец иначе >[объект1;имя файла исходное] ([объект1;размер], [объект1;дата])
конец возврат строка размер каталог1_размер [каталог1] увеличить каталог1_размер строка размер каталог2_размер [каталог2] увеличить каталог2_размер >*** Шаг 1.Чтение информации о каталогах в разные базы фактов данные использовать 1 импорт информацияОфайлах [каталог1] каталог1_ '*.*' full понятие под каталоги1 каталог данные использовать 2 импорт информацияОфайлах [каталог2] каталог2_ '*.*' full понятие под каталоги2 каталог >*** Шаг 2.Удаление дублирующихся объектов-файлов для [каталоги1] данные использовать 1 * факт сопоставитьМножество объекты1 "p;[?рез];каталог;[$ОбъектЦикла]" присвоить объекты1 (Объекты_по_свойству каталог [$ОбъектЦикла] ) для текущий_объект1 [объекты1] данные использовать 1 понятие свойства объект1 [текущий_объект1] данные использовать 2 * факт сопоставитьМножество объекты2 "p;[?рез];имя файла;[объект1;имя файла]" присвоить объекты2 (Объекты_по_свойству 'имя файла' [объект1;имя файла] ) для текущий_объект2 [объекты2] данные использовать 2 понятие свойства объект2 [текущий_объект2] если (строка удалить $результат [объект1;каталог] 1 [каталог1_размер] ) == (строка удалить $результат [объект2;каталог] 1 [каталог2_размер] ) если [объект1;дата] == [объект2;дата] если [объект1;размер] == [объект2;размер] * Если одинаковые объекты-файлы, то удаляем информациюо них данные использовать 1 понятие удалить [текущий_объект1] данные использовать 2 понятие удалить [текущий_объект2] конец иначе если (Соблюдается_хронология [объект1;дата] [объект2;дата] ) > 0 данные использовать 2 факт добавить "p;[текущий_объект2];новее;НОВЕЕ" данные использовать 1 факт добавить "p;[текущий_объект1];новее;СТАРЕЕ" иначе данные использовать 1 факт добавить "p;[текущий_объект1];новее;НОВЕЕ" данные использовать 2 факт добавить "p;[текущий_объект2];новее;СТАРЕЕ" конец конец конец следующий следующий следующий данные использовать 1 для [каталоги1] факт сопоставитьМножество объекты1 "p;[?рез];каталог;[$ОбъектЦикла]" если [объекты1] == {} понятие удалить [$ОбъектЦикла] конец следующий данные использовать 2 для [каталоги2] факт сопоставитьМножество объекты2 "p;[?рез];каталог;[$ОбъектЦикла]" если [объекты2] == {} понятие удалить [$ОбъектЦикла] конец следующий данные использовать 1 данные сжать данные использовать 2 данные сжать память очистить текущий_объект1 текущий_объект2 объекты1 объекты2 объект1 объект2 >*** Шаг 3.Печать различий присвоить ВЕРСИЯ_ШАБЛОНА 1.0 присвоить ФАЙЛ_РЕЗУЛЬТАТ "[$ТекущийКаталог]_CompareDirs_.htm" файл писать [ФАЙЛ_РЕЗУЛЬТАТ] ****** Начало страницы HTML ****** > > > > >Каталог ссылок > >

Различия в двух каталогах

>

Каталог 1: [каталог1]

>

Каталог 2: [каталог2]

данные использовать 1 понятие под каталоги1 каталог данные использовать 2 понятие под каталоги2 каталог * Формирование общего перечня подкаталогов присвоить каталоги_короткие {} для [каталоги1] множество или каталоги_короткие $ (строка удалить $результат [$ОбъектЦикла] 1 [каталог1_размер] ) следующий для [каталоги2] множество или каталоги_короткие $ (строка удалить $результат [$ОбъектЦикла] 1 [каталог2_размер] ) следующий если [каталоги_короткие] > > для [каталоги_короткие] если [$ОбъектЦикла] == '' присвоить каталог1_длинное [каталог1] присвоить каталог2_длинное [каталог2] иначе строка сцепить каталог1_длинное [каталог1] '\' [$ОбъектЦикла] строка сцепить каталог2_длинное [каталог2] '\' [$ОбъектЦикла] конец > данные использовать 1 факт сопоставитьМножество объекты1 "p;[?рез];каталог;[каталог1_длинное]" > данные использовать 2 факт сопоставитьМножество объекты2 "p;[?рез];каталог;[каталог2_длинное]" > следующий >
[каталог1][каталог2]
[$ОбъектЦикла]
для [объекты1] Печать_информации_о_файле [$ОбъектЦикла] следующий > для [объекты2] Печать_информации_о_файле [$ОбъектЦикла] следующий >
иначе >Каталоги ОДИНАКОВЫЕ. конец ****** Конец страницы HTML ****** >


Дата генерации: [$Сегодня] Версия шаблона: [ВЕРСИЯ_ШАБЛОНА]

> файл конецЗаписи >Общее время выполнения: [$таймер] показать html [ФАЙЛ_РЕЗУЛЬТАТ]